home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / MotifApp / ch2 / Stopwatch2 / Stopwatch.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-03  |  2.0 KB  |  62 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //////////////////////////////////////////////////////////////////////////////
  3. //         This example code is from the book:
  4. //
  5. //           Object-Oriented Programming with C++ and OSF/Motif
  6. //         by
  7. //           Douglas Young
  8. //           Prentice Hall, 1992
  9. //           ISBN 0-13-630252-1    
  10. //
  11. //         Copyright 1991 by Prentice Hall
  12. //         All Rights Reserved
  13. //
  14. //  Permission to use, copy, modify, and distribute this software for 
  15. //  any purpose except publication and without fee is hereby granted, provided 
  16. //  that the above copyright notice appear in all copies of the software.
  17. ///////////////////////////////////////////////////////////////////////////////
  18. //////////////////////////////////////////////////////////////////////////////
  19.  
  20.  
  21. ////////////////////////////////////////////////////////////////
  22. // Stopwatch.h: Group subcomponents into one stopwatch component
  23. ////////////////////////////////////////////////////////////////
  24. #ifndef STOPWATCH_H
  25. #define STOPWATCH_H
  26. #include "UIComponent.h"
  27. #include "Timer.h"
  28.   
  29. // Header file doesn't need the full declaration of these classes
  30.   
  31. class Face;
  32. class Control;
  33.   
  34. class Stopwatch : public UIComponent {
  35.  
  36.     friend Control; // Let Control call protected Stopwatch functions
  37.  
  38.   private:
  39.  
  40.     // Encapsulate a resource specification used to init this class
  41.  
  42.     static XtResource _resources[];
  43.   
  44.       Face    *_face;    // The display of the stopwatch
  45.       Timer   *_timer;   // The object that keeps the time
  46.       Control *_control; // Control panel that starts and stops timing
  47.   
  48.    protected:
  49.   
  50.       virtual void timerStarted();   // Subclass hooks called when
  51.       virtual void timerStopped();   // timer starts and stops
  52.       float elapsedTime() { return _timer->elapsedTime(); }
  53.       int _interval;
  54.   
  55.    public:
  56.   
  57.       Stopwatch ( Widget, char * );
  58.       virtual ~Stopwatch();
  59.       virtual const char *const className() { return "Stopwatch"; }
  60.   };
  61.   #endif
  62.